<?  
  set_time_limit(4500);
  /* Se asegura que el archivo es incluido por el index */
    defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Menu_contenido_exe( $this );
    
	class Menu_contenido_exe extends Exe
	{
	function Menu_contenido_exe( &$oModule )
		{
			$this->Exe( $oModule );
		}
		// AGREGAR_MENU_CONTENIDO
		function insert()
		{
			$oForm = $this->oModule->loadClass( 'Menu_contenido_frm' );
			if ( !getParam('bSinContenido') )
			{
				// Agrega el contenido
					$oExe = $this->oModule->loadClass( 'contenido_exe' );
					$ncContenido =  $oExe->insert();
			}
			// Convierte a variables los datos del Formulario asociado a la accion
				extract( $oForm->getFieldArray() );
				$this->oDatabase->insert("gtMenuContenido"
									,"ncMenu", $ncMenu
									,"ncContenido", $ncContenido
									,"nOrden", $nOrden);
			// Se fija si esta puesto el componente que lo visualiza
			$ncTipoContenido = $this->oDatabase->getData('SELECT ncTipoContenido FROM gtContenido WHERE ncContenido = ' . $ncContenido );
			$ncComponente = $this->oDatabase->getData("select ncComponente from gtComponente where cAccion = 'contenido' and concat(cParametros, '&') like '%ncTipoContenido=$ncTipoContenido&%' ");
			if ( $ncComponente  && $ncComponente != 48) 
			{
				$nqExiste = $this->oDatabase->getData("SELECT ncOrden FROM gtMenuComponente WHERE ncMenu = $ncMenu AND ncComponente = $ncComponente" );
				if ( !$nqExiste )
				{
					$ncOrden = $this->oDatabase->nextKey("gtMenuComponente", "ncOrden", "ncMenu=$ncMenu");
					$this->oDatabase->insert("gtMenuComponente"
									,"ncMenu", $ncMenu
									,"ncOrden", $ncOrden
									,"ncComponente", $ncComponente
									,"nPanel", 3);
				}
			}			
		}
		// ELIMINAR_MENU_CONTENIDO
		function delete()
		{
			$ncMenu = getParam( 'ncMenu' );
			$ncContenido = getParam( 'ncContenido' );
			$this->oDatabase->delete("gtMenuContenido","ncMenu", $ncMenu,"ncContenido", $ncContenido );
		}
		
		// MODIFICAR_MENU_CONTENIDO
		function update()
		{
			$oForm = $this->oModule->loadClass( 'Menu_contenido_frm' );
			if ( !getParam('bSinContenido') )
			{
				// Actualiza contenido
				$oExe = $this->oModule->loadClass( 'contenido_exe' );
				$oExe->update();
			}
			// Convierte a variables los datos del Formulario asociado a la accion
			extract( $oForm->getFieldArray() );
			$this->oDatabase->update("gtMenuContenido"
								,"nOrden", $nOrden
								,"ncMenu", $ncMenu
								,"WHERE"
								 ,"ncMenu", $ncMenuClave
								 ,"ncContenido", $ncContenido);
		}
		function updateOrder()
		{
			$nCambiarOrden = getParam('nCambiarOrden');
			$ncMenu = getParam('ncMenu');
			$ncContenido = getParam('ncContenido');
			$nOrden = getParam('nOrden');
			if ( $nCambiarOrden  && $ncContenido )
			{
				if ( $nCambiarOrden == -1 )
					list( $ncContenidoCbo, $nOrdenCbo ) = $this->oDatabase->getArray( "SELECT ncContenido, nOrden FROM gtMenuContenido WHERE ncMenu = $ncMenu AND nOrden < $nOrden ORDER BY nOrden " , 0, 1);
				else
					list( $ncContenidoCbo, $nOrdenCbo ) = $this->oDatabase->getArray( "SELECT ncContenido, nOrden FROM gtMenuContenido WHERE ncMenu = $ncMenu AND nOrden > $nOrden ORDER BY nOrden ", 0, 1 );
				if ( $ncContenidoCbo )
				{
					$this->oDatabase->update("gtMenuContenido"
									,"nOrden", $nOrden
									,"WHERE"
									,"ncMenu", $ncMenu
									 ,"ncContenido", $ncContenidoCbo);
				} else
				{ // Si no hay ni mayor ni menor => pone 1 (minimo)  o la cantidad de registros como maximo
					if ( $nCambiarOrden == -1 )
						$nOrdenCbo = 1;
					else
						$nOrdenCbo = $this->oDatabase->getData( "SELECT count(*) FROM gtMenuContenido WHERE ncMenu = $ncMenu " );
				}
				$this->oDatabase->update("gtMenuContenido"
								,"nOrden", $nOrdenCbo
								,"WHERE"
								 ,"ncMenu", $ncMenu
								 ,"ncContenido", $ncContenido);
			}
		}
	}
?>